State machines are generally multiple flip-flop combinations having present state values derived from previous state values and present input signals. Multiple state machines may be combined in plural state machine network systems to articulate functional relationships between prior state values and current system input signals.
When, within such systems, different constituent state machines are clocked from differing sets of combinatorial logic, variations in propagation times makes coordination between state machines problematic. The status of the inputs to the combination, the Boolean function articulated through the logical combination, and the technology used to implement the logic can all affect the propagation time through a particular combinatorial logic set. When the output of one combinatorially clocked state machine serves as an input to another state machine, predictable synchronization between state machines can become particularly uncertain.
There are known methods to reduce the uncertainty associated with clocking multiple state machines from combinatorial logic, but all are expensive and complex. For example, strobe signals for state machines can be derived from relatively complex arrangements of sequential logic using hardware counters. Multiple state machine sequencing can thus be more accurately controlled, but implementation is expensive and consumes integrated circuit chip area.
More sophisticated methods directed to accommodating unforeseen time dependencies amongst multiple state machines within plural state machine systems are known. However, these known techniques generally use a complicated virtual memory unit ("VMU") and a plurality of programmable array logic devices to monitor state machine status and make appropriate time dependency accommodations. Examples of such VMU techniques are purportedly taught in U.S. Pat. No. 5,280,595 to Lemay et al. However, none of the known methods achieve the required predictability with straight forward implementation at low cost. Therefore, what is needed is an inexpensive and hazard-free method and apparatus to control coordination of multiple state machines clocked through combinatorial logic.